home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 63.zip / BS1 part 63 / Video Tracker dev. kit d1.adf / Source / Wave.s < prev   
Text File  |  1993-08-09  |  44KB  |  2,083 lines

  1. rout            ;when this is off, the routine-file will be
  2.             ;assembled, on=testing
  3.             
  4. ;debug            ;when this is on, colors in the background will
  5.             ;show how much time the routine needs.
  6.  
  7.  
  8. routinemode    equ    19    ;the routinemode !
  9.  
  10.  
  11. ; the first part of the source handles the things that are necessary to
  12. ; show the picture/copper and playing of the routine.
  13. ; the part between the "***" lines is the routine-source.
  14. ; at the bottom of the file, there are the necessary incbin-files who
  15. ; are needed to test the routine.
  16. ; these are saved with "save effect" in videotracker. they are raw
  17. ; data files which can be fonts,pictures,landscapes,vectorobjects
  18. ; etcetra.
  19. ; the incbin-files are put in the "variables" table, in the routine-
  20. ; player-handler
  21. ; the place where it's done can be found by searching for "!!!"
  22.  
  23.  
  24.     opt    a+    ;devpac 3 optimize
  25.     opt    o+
  26.  
  27.     ifd    rout
  28.     
  29.     ;videotracker routine-test
  30.  
  31.     incdir    "videotracker:include/"
  32.     include    "exec/types.i"
  33.     include    "graphics/gfxbase.i"
  34.     include    "lvo/graphics_lib.i"
  35.     incdir    'videotracker:effect/'
  36.  
  37. vew_wid    equ    44
  38. vew_hgt    equ    290
  39. win_hgt    equ    117
  40. win_str    equ    $1a
  41.  
  42.     SECTION    1,CODE_C
  43. tus
  44.  
  45.     lea    var,a0            ;communication-table
  46. ;    move.l    #rotinc,var_cols1(a0)    ;incbinfile !!!
  47.  
  48.     move.l    ($4).w,a6
  49.     sub.l    a1,a1
  50.     jsr    -$126(a6)        ;findtask
  51.     move.l    d0,curtsk
  52.     move.l    d0,a0
  53.     move.l    $b8(a0),tskpri
  54.  
  55.     lea    dosnam,a1        ;doslib openen
  56.     moveq.l    #0,d0
  57.     move.l    (4).w,a6
  58.     jsr    -408(a6)        ;openlib
  59.     move.l    d0,doslib
  60.  
  61.     bsr.s    label5            ;videotracker opstarten
  62.     
  63.     move.l    curtsk,a0
  64.     move.l    tskpri,$b8(a0)
  65.     move.l    ($4).w,a6
  66.     jsr    -$84(a6)        ;forbid
  67.  
  68.     move.l    doslib,a1
  69.     move.l    (4).w,a6
  70.     jsr    -414(a6)        ;closelib
  71.  
  72.     moveq.l    #0,d0
  73.     rts
  74.     
  75. label5
  76.     move.l    (4).w,a6        ;workbench gedoe
  77.     move.b    530(a6),ntscmode    ;50/60 hertz halen
  78.  
  79.     cmp.b    #50,ntscmode        ;ntsc ?
  80.     beq.s    str.ntsc
  81.     move.l    #vew_hgt-56,hogscr    ;set NTSC screen hight
  82. str.ntsc
  83.  
  84.     move.l    (4).w,a6        ;68030 cache off 
  85.     jsr    -120(a6)
  86.  
  87.     btst.b    #1,297(a6)
  88.     beq.s    str.nfc
  89.     lea.l    str.ft,a5
  90.     jsr    -30(a6)
  91. str.nfc
  92.     jsr    -126(a6)
  93.     bra.s    str.fc
  94.     
  95. str.ft
  96.     dc.w    $4e7a,2
  97.     bclr    #0,d0
  98.     bset    #13,d0
  99.     dc.w    $4e7b,2
  100.     rte
  101. str.fc
  102.  
  103.     lea    cprjmp,a2        ;copjmp zetten !
  104.     move.l    #cprbck-8,d0
  105.     move.w    d0,6(a2)
  106.     swap    d0
  107.     move.w    d0,2(a2)
  108.  
  109.     lea    cprbck-8,a2        ;copstr zetten !
  110.     move.l    #cpr,d0
  111.     move.w    d0,6(a2)
  112.     swap    d0
  113.     move.w    d0,2(a2)
  114.  
  115.     bsr    cprsprrem        ;sprites legen
  116.  
  117.     lea    gfxnam,a1        ;graphics lib openen
  118.     move.l    (4).w,a6
  119.     jsr    -408(a6)        ;openlib
  120.     move.l    d0,a6
  121.     move.l    d0,gfxlib
  122.     move.l    38(a6),oldcprlist
  123.  
  124.     bset    #1,$bfe001
  125.     bsr    copbuf            ;copper vullen
  126.  
  127.     bsr    sysoff
  128.  
  129. gadrun
  130.     btst    #6,($bfe001).l
  131.     bne    gadrun
  132.  
  133. scrend
  134. scrend.play
  135.     bsr    syson
  136.  
  137.     move.l    gfxlib,a1
  138.     move.l    (4).w,a6
  139.     jsr    -414(a6)        ;closelib
  140.  
  141. scrend.qb
  142.     moveq.l    #0,d0    
  143.     rts
  144.     
  145.     ;vertical blank interrupt, no blits.
  146.     ;handles counters,interlace,sprite
  147.     ;level 3
  148.  
  149. intvb
  150.     bra.s    intvb.cnt
  151.     dc.l    'VIDU'
  152.     dc.l    'LOOP'
  153. intvb.cnt
  154.     movem.l    d0-d7/a0-a6,-(sp)
  155.     lea    ($dff000).l,a6
  156.  
  157.     move.w    $01e(a6),d0
  158.     btst    #5,d0            ;vblank ?
  159.     bne.s    intvb.vb
  160.  
  161.     bra.s    intcop.end
  162.  
  163. intvb.vb
  164.     bsr    grap
  165.     bsr    palctr            ;palette zetten
  166.     bsr.s    copbuf            ;copper vullen
  167.     
  168. intvb.end
  169.     move.w    #$0020,$09c(a6)    ;vb bit wissen
  170.     movem.l    (sp)+,d0-d7/a0-a6    ;multitask uit, shit !
  171.     rte
  172.  
  173. intcop.end
  174.     movem.l    (sp)+,d0-d7/a0-a6
  175.     move.l    intvbold,-(sp)
  176.     rts
  177.  
  178.     ;transmission buffer empty routine, BLIT !
  179.     ;handles routines,animations
  180.     
  181. inttbe                    ;tbe interrupt
  182.     movem.l    d0-d7/a0-a6,-(sp)
  183.     lea    ($dff000).l,a6
  184.  
  185.     move.w    $01e(a6),d0
  186.     btst    #0,d0            ;no tbe ?
  187.     beq.s    intdskblk
  188.  
  189.  
  190.     btst    #6,($bfe001).l        ;muis ingedrukt ?
  191.     beq.s    inttbe.cop
  192.     btst    #2,($dff016).l
  193.     beq.s    inttbe.cop
  194.  
  195.     ifd    debug
  196.     move.w    #$700,$dff180
  197.     endc
  198.     
  199.     bsr    rotply            ;routineplayer BLIT !
  200.     bsr.s    copbuf            ;copper vullen
  201.  
  202.     ifd    debug
  203.     move.w    #$070,$dff180
  204.     endc
  205.     
  206. inttbe.cop
  207.  
  208. inttbe.end
  209.     move.w    #$0001,$09c(a6)
  210.     movem.l    (sp)+,d0-d7/a0-a6
  211.     rte
  212.  
  213. intdskblk
  214.     move.w    #$0001,$09c(a6)        ;be sure for no tbe handling
  215.     movem.l    (sp)+,d0-d7/a0-a6
  216.     move.l    inttbeold,-(sp)
  217.     rts
  218.  
  219.  
  220.     ;moves the copperbuffer to the copperlist
  221.     ;sort of double buffering
  222.     
  223. copbuf
  224.     movem.l    d0-d7/a0-a6,-(sp)
  225.  
  226.     lea    ($dff000).l,a6
  227.  
  228. copbuf.novb                ;copperchange overslaan
  229.     moveq.l    #0,d0
  230.     move.b    $005(a6),d0
  231.     lsl.w    #8,d0
  232.     moveq.l    #0,d1
  233.     move.b    $006(a6),d1
  234.     add.w    d1,d0
  235.  
  236.     cmp.w    #$4,d0
  237.     blt    copbuf.novb
  238.  
  239.     cmp.b    #50,ntscmode
  240.     beq.s    copbuf.pal
  241.     cmp.w    #$133-56-8,d0        ;ntsc grens
  242.     bge    copbuf.novb
  243.     bra.s    copbuf.cont
  244. copbuf.pal
  245.     cmp.w    #$133-8,d0        ;pal grens
  246.     bge    copbuf.novb
  247. copbuf.cont
  248.  
  249.     lea    gra.s,a0        ;buffer copieren
  250.     lea    cprbuf,a1
  251.  
  252.     move.w    00*4+2(a0),00*4+2(a1)
  253.     move.w    01*4+2(a0),01*4+2(a1)
  254.     move.w    02*4+2(a0),02*4+2(a1)
  255.     move.w    03*4+2(a0),03*4+2(a1)
  256.     move.w    04*4+2(a0),04*4+2(a1)
  257.     move.w    05*4+2(a0),05*4+2(a1)
  258.     move.w    06*4+2(a0),06*4+2(a1)
  259.     move.w    07*4+2(a0),07*4+2(a1)
  260.     move.w    08*4+2(a0),08*4+2(a1)
  261.     move.w    09*4+2(a0),09*4+2(a1)
  262.  
  263.     move.w    10*4+2(a0),10*4+2(a1)
  264.     move.w    11*4+2(a0),11*4+2(a1)
  265.     move.w    12*4+2(a0),12*4+2(a1)
  266.     move.w    13*4+2(a0),13*4+2(a1)
  267.     move.w    14*4+2(a0),14*4+2(a1)
  268.     move.w    15*4+2(a0),15*4+2(a1)
  269.     move.w    16*4+2(a0),16*4+2(a1)
  270.     move.w    17*4+2(a0),17*4+2(a1)
  271.     move.w    18*4+2(a0),18*4+2(a1)
  272.     move.w    19*4+2(a0),19*4+2(a1)
  273.  
  274.     move.w    20*4+2(a0),20*4+2(a1)
  275.     move.w    21*4+2(a0),21*4+2(a1)
  276.     move.w    22*4+2(a0),22*4+2(a1)
  277.     move.w    23*4+2(a0),23*4+2(a1)
  278.     move.w    24*4+2(a0),24*4+2(a1)
  279.     move.w    25*4+2(a0),25*4+2(a1)
  280.     move.w    26*4+2(a0),26*4+2(a1)
  281.     move.w    27*4+2(a0),27*4+2(a1)
  282.     move.w    28*4+2(a0),28*4+2(a1)
  283.     move.w    29*4+2(a0),29*4+2(a1)
  284.  
  285.     move.w    30*4+2(a0),30*4+2(a1)
  286.     move.w    31*4+2(a0),31*4+2(a1)
  287.     move.w    32*4+2(a0),32*4+2(a1)
  288.     move.w    33*4+2(a0),33*4+2(a1)
  289.     move.w    34*4+2(a0),34*4+2(a1)
  290.     move.w    35*4+2(a0),35*4+2(a1)
  291.     move.w    36*4+2(a0),36*4+2(a1)
  292.     move.w    37*4+2(a0),37*4+2(a1)
  293.     move.w    38*4+2(a0),38*4+2(a1)
  294.     move.w    39*4+2(a0),39*4+2(a1)
  295.  
  296.     move.w    40*4+2(a0),40*4+2(a1)
  297.     move.w    41*4+2(a0),41*4+2(a1)
  298.     move.w    42*4+2(a0),42*4+2(a1)
  299.     move.w    43*4+2(a0),43*4+2(a1)
  300.     move.w    44*4+2(a0),44*4+2(a1)
  301.     move.w    45*4+2(a0),45*4+2(a1)
  302.     move.w    46*4+2(a0),46*4+2(a1)
  303.     move.w    47*4+2(a0),47*4+2(a1)
  304.     move.w    48*4+2(a0),48*4+2(a1)
  305.     move.w    49*4+2(a0),49*4+2(a1)
  306.  
  307.     move.w    50*4+2(a0),50*4+2(a1)
  308.     move.w    51*4+2(a0),51*4+2(a1)
  309.     move.w    52*4+2(a0),52*4+2(a1)
  310.     move.w    53*4+2(a0),53*4+2(a1)
  311.     move.w    54*4+2(a0),54*4+2(a1)
  312.  
  313. copbuf.end
  314.     movem.l    (sp)+,d0-d7/a0-a6
  315.     rts
  316.  
  317.     ;goes back to the workbench
  318.     
  319. syson
  320.     movem.l    d0-d7/a0-a6,-(sp)
  321.  
  322.     move.w    #$0001,$dff09a        ;tbeint uit
  323.     move.l    intvbold,($6c).w
  324.     move.l    inttbeold,($64).w
  325.  
  326.     move.l    4,a6
  327.     jsr    -138(a6)        ;permit
  328.  
  329.     move.l    gfxlib,a6
  330.     jsr    -462(a6)        ;disownblitter
  331.  
  332.     move.l    wbview,a1
  333.     move.l    gfxlib,a6
  334.     jsr    _LVOLoadView(a6)     ; Fix view
  335.     jsr    _LVOWaitTOF(a6)
  336.     jsr    _LVOWaitTOF(a6)         ; wait for LoadView()
  337.  
  338. syson.ras
  339.     cmp.b    #$c0,$dff006        ;prevent copperjump
  340.     bne    syson.ras
  341.  
  342.     move.l    gfxlib,a6
  343.     move.l    gb_copinit(a6),$dff080     ; Kick it into life
  344.  
  345.     movem.l    (sp)+,d0-d7/a0-a6
  346.     rts
  347.     
  348.     ;goes back to the gadgetscreen
  349.     
  350. sysoff
  351.     movem.l    d0-d7/a0-a6,-(sp)
  352.      
  353.     move.l    gfxlib,a6
  354.     move.l    gb_ActiView(a6),wbview    ;current view
  355.     sub.l    a1,a1            ; clear a1
  356.     jsr     _LVOLoadView(a6)     ; Flush View to nothing
  357.     jsr    _LVOWaitTOF(a6)     ; Wait once
  358.     jsr    _LVOWaitTOF(a6)     ; Wait again.
  359.  
  360.     move.l    gfxlib,a6
  361.     jsr    -456(a6)        ;ownblitter
  362.  
  363.     move.l    4,a6
  364.     jsr    -132(a6)        ;forbid
  365.         
  366.     move.l    ($6c).w,intvbold
  367.     move.l    #intvb,($6c).w
  368.     move.l    ($64).w,inttbeold
  369.     move.l    #inttbe,($64).w
  370.     move.w    #$8001,$dff09a        ;tbeint aan
  371.     bsr    gracpr            ;reset copper
  372.     bsr    copbuf            ;copy copper
  373.     move.l    #cpr,$dff080
  374.  
  375.     movem.l    (sp)+,d0-d7/a0-a6
  376.     rts
  377.     
  378. cprsprrem
  379.     movem.l    d0-d7/a0-a6,-(sp)
  380.     lea    cprspr,a0
  381.     move.l    #sprdat,d0
  382.     move.w    #7,d1
  383. cprsprrem.a
  384.     move.w    d0,3*2(a0)
  385.     swap    d0
  386.     move.w    d0,1*2(a0)
  387.     swap    d0
  388.     add.l    #8,a0
  389.     dbra    d1,cprsprrem.a
  390.     movem.l    (sp)+,d0-d7/a0-a6
  391.     rts
  392.  
  393. varset                    ;variablen neerzetten
  394.     movem.l    d0-d7/a0-a6,-(sp)
  395.     move.l    #var,a0
  396.  
  397.     move.l    #cprbck,var_cprbck(a0)
  398.     move.l    gfxlib,var__GfxBase(a0)
  399.     move.b    ntscmode,var_ntsc(a0)
  400.  
  401.     move.l    curpic1,var_pic1(a0)    ;variabel
  402.     move.l    curpic2,var_pic2(a0)    ;variabel
  403.     move.w    anispd1,var_anispd1(a0)
  404.     move.w    anitel1,var_anitel1(a0)
  405.     movem.l    (sp)+,d0-d7/a0-a6
  406.     rts
  407.     
  408.     ;this routine handles all videotracker-routines
  409.  
  410. rotply    
  411.     movem.l    d0-d7/a0-a6,-(sp)
  412.  
  413.     moveq.l    #0,d0
  414.  
  415.     lea    currot1,a2        ;routine 1
  416.     move.w    rotinf1,d0        ;routine info
  417.     bsr.s    rotplyr
  418.  
  419. rotply.end
  420.     movem.l    (sp)+,d0-d7/a0-a6
  421.     rts
  422.  
  423.     ;this routine handles 1 routine, BLIT !
  424.     
  425. rotplyr
  426.     movem.l    d0-d7/a1-a6,-(sp)
  427.  
  428.     move.l    #rot,(a2)        ;routinestart address
  429.  
  430.     move.b    #50,ntscmode        ;ntsc/pal hz
  431.     clr.l    curpic2            ;background picture
  432.     move.w    #1,anispd1        ;animationspeed
  433.     clr.w    anitel1            ;animation position
  434.  
  435.     lea    var,a0            ;communication-table
  436.  
  437.  
  438.     move.l    #routinemode,d0        ;routinemode !!!
  439.  
  440.     sub.l    a0,a0            ;picture info legen
  441.  
  442.     tst.l    (a2)            ;is er een routine ?
  443.     beq    rotplyr.end        ;interlace handling
  444.  
  445.     move.l    intdel,d2        ;delay
  446.     move.l    inttel,d1        ;teller
  447.     cmp.w    d2,d1
  448.     blt    rotplyr.end
  449.     clr.l    inttel
  450.                 
  451.     bsr    varset            ;variabelen updaten
  452.  
  453.     move.l    (a2),a1            ;routine halen
  454.     move.l    #var,a0            ;variablen tabel
  455.  
  456.     movem.l    d3-d7/a1-a6,-(sp)
  457.     moveq.l    #0,d1            ;vars wissen
  458.     moveq.l    #0,d2
  459.     moveq.l    #0,d3
  460.     moveq.l    #0,d4
  461.     moveq.l    #0,d5
  462.     moveq.l    #0,d6
  463.     moveq.l    #0,d7
  464.     sub.l    a2,a2
  465.     sub.l    a3,a3
  466.     sub.l    a4,a4
  467.     sub.l    a5,a5
  468.  
  469.     jsr    4(a1)            ;routine afwerken
  470.     movem.l    (sp)+,d3-d7/a1-a6
  471.  
  472.     ;Routine:
  473.     ;
  474.     ;Input:
  475.     ;a0=variabelentabel
  476.     ;d0=routinemode
  477.     ;
  478.     ;Output:
  479.     ;a0=picture
  480.     ;d1=copperlist
  481.     ;d2=interruptdelay        (NOT used till now)
  482.     
  483.     move.w    #$0020,$dff09a        ;vb off !
  484.  
  485.     move.l    d2,intdel        ;delay
  486.  
  487.     lea    cprjmp,a3
  488.     move.l    #cprbck-8,d0
  489.  
  490.     cmp.l    (a2),a1            ;routine ondertussen gewipt ?
  491.     bne.s    rotplyr.nocop
  492.     tst.l    d1            ;copperlist ?
  493.     beq.s    rotplyr.nocop
  494.     move.l    d1,d0
  495. rotplyr.nocop
  496.     move.w    d0,6(a3)
  497.     swap    d0
  498.     move.w    d0,2(a3)
  499.  
  500.     cmp.l    #0,a0            ;picture ?
  501.     beq.s    rotplyr.endvb
  502.  
  503.     move.l    a0,curpic1        ;current picture (cycle)
  504.     move.l    a0,curpal1        ;current palette
  505.  
  506.     tst.b    rotdpl            ;plane is geleverd
  507.     beq.s    rotplyr.set
  508.     clr.b    rotdpl
  509.     clr.l    cycdel1            ;cycle info wissen
  510.     clr.l    4+cycdel1
  511.     clr.l    curfrm1            ;curfrm1, altijd planes zetten
  512. rotplyr.set
  513.     clr.b    dplctr
  514.     bsr.s    grap
  515.     bsr    grac            ;colorset
  516. rotplyr.endvb
  517.     move.w    #$8020,$dff09a
  518. rotplyr.end
  519.     movem.l    (sp)+,d0-d7/a1-a6
  520.     rts
  521.  
  522.     ;removes possible routine-coppers
  523.     
  524. gracpr
  525.     movem.l    d0-d7/a0-a6,-(sp)
  526.     lea    cprjmp,a3
  527.     move.l    #cprbck-8,d0        ;copperlist resetten
  528.     move.w    d0,6(a3)
  529.     swap    d0
  530.     move.w    d0,2(a3)
  531.     movem.l    (sp)+,d0-d7/a0-a6
  532.     rts
  533.  
  534.     ;picture-to-copper routine, communicates with the
  535.     ;anim-player
  536.     
  537. grap                    ;d7=anim
  538.     movem.l    d0-d7/a0-a6,-(sp)
  539.  
  540.     clr.l    d7
  541.     
  542.     tst.l    curpic1            ;current picture ?
  543.     beq    grap.end
  544.  
  545.     move.l    curpic1,a2        ;normal pic halen
  546.  
  547.     lea    gracprscr,a1        ;window neerzetten
  548.     move.l    hogscr,d1
  549.  
  550.     move.w    pic_hgt(a2),d3        ;pic hoogte
  551.     move.w    pic_vew(a2),d5
  552.     btst    #2,d5            ;interlace ?
  553.     beq.s    grap.nohi4
  554.     lsr.w    #1,d3            ;/2
  555. grap.nohi4
  556.     cmp.w    d3,d1
  557.     bge.s    grap.hog
  558.     move.w    d1,d3
  559. grap.hog
  560.     sub.w    d3,d1
  561.     lsr.w    #1,d1
  562.     add.w    #win_str,d1
  563.     move.w    d1,d2
  564.     add.w    d3,d2
  565.  
  566.  
  567.     move.b    d1,2(a1)        ;y start
  568.     move.b    d2,6(a1)        ;y end
  569.  
  570.     move.w    pic_wid(a2),d4        ;pic breedte in bytes
  571.     lsl.l    #3,d4
  572.  
  573.     move.l    #vew_wid*8,d0
  574.     move.l    #0,d1
  575.     move.l    #$71,d6
  576.  
  577.     move.w    pic_vew(a2),d5
  578.     btst    #15,d5            ;hires ?
  579.     beq.s    grap.nohi2
  580.  
  581.     move.l    #(vew_wid-4)*8*2,d0
  582.     move.l    #1,d1
  583.     move.l    #$81,d6
  584.  
  585.     cmp.w    #80,pic_wid(a2)        ;overscan ?
  586.     ble.s    grap.nohi2
  587.     move.l    #(vew_wid)*8*2,d0
  588.     move.l    #$61,d6
  589.  
  590. grap.nohi2    
  591.     btst    #6,d5            ;super hires ?
  592.     beq.s    grap.noshi2
  593.  
  594.     move.l    #(vew_wid-4)*8*4,d0
  595.     move.l    #2,d1
  596.     move.l    #$81,d6
  597.  
  598.     cmp.w    #80*2,pic_wid(a2)    ;overscan ?
  599.     ble.s    grap.noshi2
  600.     move.l    #(vew_wid)*8*4,d0
  601.     move.l    #$61,d6
  602.  
  603. grap.noshi2    
  604.  
  605.     clr.w    d5
  606.     cmp.w    d0,d4            ;breeder dan scherm ?
  607.     ble.s    grap.c
  608.     move.w    d4,d5
  609.     move.w    d0,d4
  610.     sub.w    d0,d5            ;modulo
  611.     lsr.w    #3,d5            ;/8
  612. grap.c
  613.     lsr.w    d1,d0
  614.     lsr.w    d1,d4
  615.  
  616.     move.w    d0,d2
  617.     sub.w    d4,d2
  618.     lsr.w    #1,d2            ;/2
  619.  
  620.     add.w    d6,d2
  621.     move.b    d2,3(a1)        ;x start
  622.     move.w    d2,d3            ;d3 bewaren !
  623.  
  624.     add.w    d4,d2            ;d4 bewaren !
  625.     move.b    d2,7(a1)        ;x end
  626.     
  627.     move.w    pic_vew(a2),d6
  628.     btst    #15,d6            ;hires ?
  629.     beq.s    grap.nohi5    
  630.     add.l    d4,d4            ;*2
  631. grap.nohi5
  632.     btst    #6,d6            ;super hires ?
  633.     beq.s    grap.noshi5    
  634.     add.l    d4,d4            ;*4
  635. grap.noshi5
  636.  
  637.     move.l    d7,-(sp)
  638.     move.w    pic_vew(a2),d6
  639.     move.l    #17,d0
  640.     move.l    #1,d1
  641.     move.l    #3,d7
  642.  
  643.     btst    #15,d6            ;hires ?
  644.     beq.s    grap.nohi3    
  645.     move.l    #9,d0
  646.     move.l    #2,d1
  647.     move.l    #2,d7
  648. grap.nohi3
  649.     btst    #6,d6            ;super hires ?
  650.     beq.s    grap.noshi3    
  651.     move.l    #9,d0
  652.     move.l    #2,d1
  653.     move.l    #1,d7
  654. grap.noshi3
  655.     sub.w    d0,d3
  656.     lsr.w    #1,d3
  657.     move.w    d3,10(a1)        ;ddfstrt
  658.     
  659.     move.w    d4,d2            ;pic breedte in pixels
  660.     lsr.w    #4,d2            ;/16
  661.     sub.w    d1,d2            ;-1
  662.  
  663.     lsl.w    d7,d2            ;*8
  664.     add.w    d2,d3
  665.     move.w    d3,14(a1)        ;ddfstop
  666.     move.l    (sp)+,d7
  667.     
  668.     lea    pic_raw(a2),a0
  669.  
  670.     moveq.l    #0,d2
  671.     move.w    pic_dpt(a2),d2
  672.     sub.l    #1,d2
  673.     muls    pic_wid(a2),d2
  674.     add.w    d2,d5
  675.  
  676.     move.w    pic_vew(a2),d2        ;viewmode add
  677.     btst    #2,d2
  678.     beq.s    grap.nolace4
  679.  
  680.     moveq.l    #0,d2
  681.     move.w    pic_dpt(a2),d2
  682.     muls    pic_wid(a2),d2
  683.     add.w    d2,d5            ;interlace gedoe
  684. grap.nolace4
  685.  
  686.     lea    gracprbpl,a4        ;iffpln neerzetten
  687.     lea    gracprpln,a0        ;iffpln neerzetten
  688.     moveq.l    #0,d2
  689.     move.w    pic_dpt(a2),d2        ;plnnummer 1 halen
  690.     move.l    #8,d6            ;copper step !
  691.  
  692.     tst.l    curpic2            ;2de picture ?
  693.     bne.s    grap.pic2
  694. grap.nopic2
  695.     move.w    d5,34(a1)        ;modulo oneven zetten
  696.     bra    grap.nodpl
  697. grap.pic2
  698.     move.l    curpic2,a3        ;oneven plane
  699.     move.l    currot2,a5        ;oneven plane
  700.     clr.l    curpic2            ;mischien niet goed
  701.     clr.l    curpal2            ;mischien niet goed
  702.     clr.l    currot2            ;mischien niet goed
  703.  
  704.     cmp.l    curpic1,a3        ;picture hetzelfde ?
  705.     beq    grap.nopic2
  706.     
  707.     cmp.l    #0,currot1        ;routine ?    
  708.     beq.s    grap.norot
  709.     cmp.l    currot1,a5        ;routine hetzelfde ?
  710.     beq    grap.nopic2
  711. grap.norot
  712.  
  713.     cmp.b    #3,d2            ;> 8 kleuren ?
  714.     bgt    grap.nopic2
  715.     move.w    pic_dpt(a3),d3        ;plnnummer 2 halen
  716.     cmp.b    d2,d3            ;gelijke plnummers ?
  717.     bne    grap.nopic2
  718.     move.w    pic_vew(a2),d1
  719.     cmp.w    pic_vew(a3),d1        ;view gelijk ?
  720.     bne    grap.nopic2
  721.  
  722.     move.w    pic_vew(a2),d1        ;groter dan view test
  723.     btst    #6,d1            ;super hires ?
  724.     beq.s    grap.nohi2a
  725.     move.l    #vew_wid*4,d1
  726.     bra.s    grap.nohi2b
  727. grap.nohi2a
  728.     btst    #15,d1            ;hires ?
  729.     beq.s    grap.noshi2a
  730.     move.l    #vew_wid*2,d1
  731.     bra.s    grap.nohi2b
  732. grap.noshi2a
  733.     move.l    #vew_wid,d1
  734. grap.nohi2b
  735.     cmp.w    pic_wid(a2),d1        ;breder dan view ?
  736.     bgt.s    grap.small
  737.     cmp.w    pic_wid(a3),d1        ;breder dan view ?
  738.     bgt.s    grap.small
  739.  
  740.     move.w    pic_vew(a2),d1
  741.     btst    #2,d1
  742.     beq.s    grap.nolace8a
  743.     move.l    hogscr,d1
  744.     add.l    d1,d1
  745.     bra.s    grap.nolace8b
  746. grap.nolace8a
  747.     move.l    hogscr,d1
  748. grap.nolace8b
  749.     cmp.w    pic_hgt(a2),d1        ;hoger dan view ?
  750.     bgt.s    grap.small
  751.     cmp.w    pic_hgt(a3),d1        ;hoger dan view ?
  752.     bgt.s    grap.small
  753.     bra.s    grap.big
  754.  
  755. grap.small
  756.     move.w    pic_hgt(a2),d1        ;wid+hgt<vew
  757.     cmp.w    pic_hgt(a3),d1        ;hoogte gelijk ?
  758.     bne    grap.nopic2
  759.     move.w    pic_wid(a2),d1
  760.     cmp.w    pic_wid(a3),d1        ;breedte gelijk ?
  761.     bne    grap.nopic2
  762.  
  763. grap.big
  764.     move.l    a3,curpic2
  765.     move.l    a3,curpal2
  766.     move.l    a5,currot2
  767.  
  768.     tst.b    dplctr            ;double playfield al gezet ?
  769.     beq.s    grap.nocop
  770.  
  771.     move.w    30(a1),34(a1)        ;modulo copieren
  772.  
  773.     move.w    2(a4),d1        ;bplcon0
  774.     btst    #10,d1            ;al double playfield ?
  775.     beq.s    grap.ta
  776.  
  777.     move.w    2(a0),10(a0)        ;plane 0>1 copieren
  778.     move.w    6(a0),14(a0)
  779.  
  780.     move.w    18(a0),26(a0)        ;plane 2>3 copieren
  781.     move.w    22(a0),30(a0)
  782.  
  783.     move.w    34(a0),42(a0)        ;plane 4>5 copieren
  784.     move.w    38(a0),46(a0)
  785.  
  786.     bra.s    grap.tb
  787. grap.ta
  788.     move.w    18(a0),42(a0)        ;plane 2>5 copieren
  789.     move.w    22(a0),46(a0)
  790.  
  791.     move.w    10(a0),26(a0)        ;plane 1>3 copieren
  792.     move.w    14(a0),30(a0)
  793.  
  794.     move.w    2(a0),10(a0)        ;plane 0>1 copieren
  795.     move.w    6(a0),14(a0)
  796.  
  797. grap.tb
  798.     move.l    #palette,a3        ;palette copieren
  799.  
  800.     move.w    #8-1,d1
  801. grap.pal
  802.     move.w    (a3)+,14(a3)
  803.     dbra    d1,grap.pal
  804.  
  805. grap.nocop
  806.     add.w    d3,d2
  807.     lsl.w    #8,d2
  808.     lsl.w    #4,d2
  809.     or.w    #$400,d2
  810.     move.w    d2,2(a4)        ;bplcon0
  811.  
  812.     movem.l    d0-d7/a0-a6,-(sp)
  813.  
  814.     move.l    curpic,a2        ;animpic ?
  815.     move.l    curfrm,d7
  816.     cmp.l    #0,a2
  817.     bne.s    grap.noanipic
  818.  
  819.     move.l    curpic2,a2        ;normal pic ?
  820.     move.l    curfrm2,d7
  821.     cmp.l    #0,a2
  822.     beq.s    grap.nodplpic
  823.  
  824. grap.noanipic
  825.     add.l    d6,a0
  826.     add.w    d6,d6
  827.     bsr.s    grappln            ;a2,d6,d7,d0
  828. grap.nodplpic
  829.     movem.l    (sp)+,d0-d7/a0-a6
  830.     add.w    d6,d6
  831.     bra.s    grap.nodpla
  832.  
  833.  
  834. grap.nodpl                ;geen double playfield
  835.     lsl.w    #8,d2
  836.     lsl.w    #4,d2
  837.     move.w    d2,2(a4)        ;bplcon0
  838.  
  839. grap.nodpla
  840.     move.w    d5,30(a1)        ;modulo even
  841.  
  842.     moveq.l    #0,d3
  843.     add.w    pic_vew(a2),d3        ;viewmode add
  844.     moveq.l    #0,d2
  845.     move.w    2(a4),d2
  846.     or.l    d3,d2
  847.     or.l    #$300,d2        ;genlock info
  848.     move.w    d2,2(a4)
  849.     
  850.     bsr.s    grappln            ;a2,d6,d7,d0
  851.  
  852. grap.end
  853.     
  854.     movem.l    (sp)+,d0-d7/a0-a6
  855.     rts
  856.         
  857.  
  858.     ;sets on of the 2 possible pictures to the copper
  859.     ;handles interlace
  860.  
  861.     ;d7=framenummer
  862.     ;d6=copperliststap
  863.     ;d0=raw planes positie
  864.     ;a2=current picture
  865. grappln                    ;planes invullen 
  866.     movem.l    d0-d7/a0-a6,-(sp)
  867.  
  868.     lea    pic_raw(a2),a1
  869.     move.l    a1,d0            ;raw planes
  870.     
  871.     moveq.l    #0,d2            ;x*y
  872.     move.w    pic_wid(a2),d2
  873.     lsr.l    #1,d2            ;/2
  874.     moveq.l    #0,d3
  875.     move.w    pic_hgt(a2),d3
  876.     muls    d3,d2
  877.     
  878.     move.l    d2,d4
  879.     add.l    d2,d2
  880.  
  881.     move.w    pic_dpt(a2),d3
  882.     muls    d3,d4            ;hele picture size
  883.     muls    d7,d4            ;frame*size d7 !
  884.  
  885.     add.l    d4,d4
  886.  
  887.     add.l    d4,d0
  888.  
  889.     move.l    #vew_wid,d5        ;max x view
  890.     move.l    hogscr,d4        ;max y view
  891.     move.w    pic_vew(a2),d1        ;viewmode add
  892.     btst    #2,d1
  893.     beq.s    grappln.nolace
  894.     add.l    d4,d4            ;max y view
  895. grappln.nolace
  896.     btst    #15,d1            ;hires ?
  897.     beq.s    grappln.nohi
  898.     move.l    #vew_wid*2,d5        ;max x view
  899. grappln.nohi
  900.     btst    #6,d1            ;super hires ?
  901.     beq.s    grappln.noshi
  902.     move.l    #vew_wid*4,d5        ;max x view
  903. grappln.noshi
  904.  
  905.     moveq.l    #0,d3            ;scherm centreren
  906.     move.w    pic_wid(a2),d3        ;pic breedte in bytes
  907.     cmp.w    d5,d3            ;breder dan scherm ?
  908.     ble.s    grappln.qa
  909.     sub.w    d5,d3            ;-scherm breedte
  910.     lsr.w    #2,d3            ;/4
  911.  
  912.     add.l    d3,d3
  913.  
  914.     add.l    d3,d0
  915. grappln.qa
  916.     move.w    pic_hgt(a2),d3        ;pic hoogte in bytes
  917.     cmp.w    d4,d3            ;hoger dan scherm ?
  918.     ble.s    grappln.qb
  919.     sub.w    d4,d3            ;-scherm breedte
  920.     lsr.w    #1,d3            ;/2
  921.     moveq.l    #0,d5
  922.     move.w    pic_wid(a2),d5        ;pic breedte in bytes
  923.     muls    pic_dpt(a2),d5
  924.     muls    d5,d3
  925.     add.l    d3,d0
  926. grappln.qb
  927.     moveq.l    #0,d2
  928.     move.w    pic_wid(a2),d2
  929.  
  930.     move.w    pic_vew(a2),d5        ;interlace flipping ?
  931.     btst    #2,d5
  932.     beq.s    grappln.nolac7b
  933.  
  934.     move.w    $04(a6),d5        ;even/oneven ?
  935.     btst    #15,d5
  936.     beq.s    grappln.nolac7b
  937.     
  938.     moveq.l    #0,d3
  939.     move.w    pic_wid(a2),d3
  940.     muls    pic_dpt(a2),d3
  941.     add.l    d3,d0
  942. grappln.nolac7b
  943.  
  944.     move.w    pic_dpt(a2),d1        ;plnnummer 1 halen
  945.     tst.w    d1            ;0 planes ?
  946.     beq.s    grappln.end
  947.     sub.w    #1,d1
  948. grappln.a
  949.     move.w    d0,3*2(a0)
  950.     swap    d0
  951.     move.w    d0,1*2(a0)
  952.     swap    d0
  953.     add.l    d6,a0            ;d6=copper step !
  954.     add.l    d2,d0
  955.     dbra    d1,grappln.a
  956. grappln.end
  957.     movem.l    (sp)+,d0-d7/a0-a6
  958.     rts
  959.  
  960.     ;sets palettes to copper
  961.     
  962. grac
  963.     movem.l    d0-d7/a0-a6,-(sp)
  964.  
  965.     lea    curpal1,a3        ;palette 1
  966.     move.l    #palette,a1
  967.     bsr.s    gracfrm
  968.  
  969.     lea    curpal2,a3        ;palette 2 (dpl)
  970.     move.l    #8*2+palette,a1
  971.     bsr.s    gracfrm
  972.     
  973.     bsr.s    palctr            ;palette-buffer to copper
  974. grac.end
  975.     movem.l    (sp)+,d0-d7/a0-a6
  976.     rts
  977.         
  978.     ;moves palette from picture to palette-buffer
  979.  
  980. gracfrm
  981.     movem.l    d0-d7/a0-a6,-(sp)
  982.     tst.l    (a3)            ;palette aanwezig ?
  983.     beq.s    gracfrm.end
  984.  
  985.     move.l    (a3),a2            ;current palette
  986.     
  987.     cmp.l    #'PALE',(a2)        ;palette ?
  988.     bne.s    gracfrm.pict
  989.     lea    6(a2),a0        ;palette
  990.     move.w    4(a2),d0        ;aantal kleuren
  991.     bra.s    gracfrm.col
  992. gracfrm.pict
  993.     cmp.l    #'ANIM',(a2)        ;animatie ?
  994.     bne.s    gracfrm.noanim
  995.  
  996.     moveq.l    #0,d1
  997.     move.w    pic_ani(a2),d1
  998.     bclr    #7,d1            ;behandelbit weghalen
  999.  
  1000.     moveq.l    #0,d3
  1001.     move.w    pic_wid(a2),d3
  1002.     lsr.w    #1,d3            ;/2
  1003.     muls    pic_hgt(a2),d3
  1004.     muls    pic_dpt(a2),d3
  1005.  
  1006.     add.l    d3,d3
  1007.  
  1008.     add.l    #pic_raw,d3
  1009.     move.l    d3,d5
  1010.  
  1011.     btst    #0,d1
  1012.     bne.s    gracfrm.buf2
  1013.     moveq.l    #0,d5
  1014. gracfrm.buf2
  1015.     add.l    d5,a2
  1016. gracfrm.noanim
  1017.     lea    pic_pal(a2),a0        ;palette
  1018.     move.w    pic_palnum(a2),d0
  1019.  
  1020.     cmp.w    #32-1,d0        ;niet meer dan 32 kleuren
  1021.     ble    gracfrm.sub
  1022.     move.w    #32-1,d0
  1023. gracfrm.sub
  1024.  
  1025.     tst.w    d0            ;0 planes ?
  1026.     beq.s    gracfrm.end
  1027. gracfrm.col
  1028. gracfrm.fa
  1029.     move.w    (a0)+,(a1)+
  1030.     dbra    d0,gracfrm.fa
  1031. gracfrm.end
  1032.     movem.l    (sp)+,d0-d7/a0-a6
  1033.     rts
  1034.     
  1035.     ;handles colorcycling in the palette-buffer
  1036.     ;and copies palette-buffer to copper
  1037.  
  1038. palctr
  1039.     movem.l    d0-d7/a0-a6,-(sp)
  1040.  
  1041.     move.l    curpic1,a2        ;current raw
  1042.     cmp.l    #0,a2
  1043.     beq.s    palctr.qb
  1044.     lea    cycdel1,a3        ;cycle delays
  1045.     move.l    #palette,a4
  1046.     bsr    palcyc
  1047. palctr.qb
  1048.     move.l    curpic2,a2        ;current raw
  1049.     cmp.l    #0,a2
  1050.     beq.s    palctr.c
  1051.     lea    cycdel2,a3        ;cycle delays
  1052.     move.l    #8*2+palette,a4
  1053.     bsr    palcyc
  1054.  
  1055. palctr.c
  1056.     lea    gracprcol,a1
  1057.     move.l    #palette,a0
  1058.  
  1059.     move.w    00(a0),00*4+2(a1)
  1060.     move.w    02(a0),01*4+2(a1)
  1061.     move.w    04(a0),02*4+2(a1)
  1062.     move.w    06(a0),03*4+2(a1)
  1063.     move.w    08(a0),04*4+2(a1)
  1064.     move.w    10(a0),05*4+2(a1)
  1065.     move.w    12(a0),06*4+2(a1)
  1066.     move.w    14(a0),07*4+2(a1)
  1067.     move.w    16(a0),08*4+2(a1)
  1068.     move.w    18(a0),09*4+2(a1)
  1069.  
  1070.     move.w    20(a0),10*4+2(a1)
  1071.     move.w    22(a0),11*4+2(a1)
  1072.     move.w    24(a0),12*4+2(a1)
  1073.     move.w    26(a0),13*4+2(a1)
  1074.     move.w    28(a0),14*4+2(a1)
  1075.     move.w    30(a0),15*4+2(a1)
  1076.     move.w    32(a0),16*4+2(a1)
  1077.     move.w    34(a0),17*4+2(a1)
  1078.     move.w    36(a0),18*4+2(a1)
  1079.     move.w    38(a0),19*4+2(a1)
  1080.  
  1081.     move.w    40(a0),20*4+2(a1)
  1082.     move.w    42(a0),21*4+2(a1)
  1083.     move.w    44(a0),22*4+2(a1)
  1084.     move.w    46(a0),23*4+2(a1)
  1085.     move.w    48(a0),24*4+2(a1)
  1086.     move.w    50(a0),25*4+2(a1)
  1087.     move.w    52(a0),26*4+2(a1)
  1088.     move.w    54(a0),27*4+2(a1)
  1089.     move.w    56(a0),28*4+2(a1)
  1090.     move.w    58(a0),29*4+2(a1)
  1091.  
  1092.     move.w    60(a0),30*4+2(a1)
  1093.     move.w    62(a0),31*4+2(a1)
  1094.  
  1095.     movem.l    (sp)+,d0-d7/a0-a6
  1096.     rts
  1097.  
  1098.     ;colorcyclinghandling of a palette
  1099.  
  1100. palcyc
  1101.     movem.l    d0-d7/a0-a6,-(sp)
  1102.     move.w    #4-1,d7            ;4 cycles
  1103. palcyc.d
  1104.     tst.w    (a3)+            ;delay klaar ?
  1105.     bne.s    palcyc.c
  1106.     
  1107.     moveq.l    #0,d1
  1108.     move.b    pic_cycstr(a2),d1    ;start color
  1109.     lsl.b    #1,d1        ;*2
  1110.  
  1111.     moveq.l    #0,d2
  1112.     move.b    pic_cycend(a2),d2    ;end color
  1113.     lsl.b    #1,d2        ;*2
  1114.  
  1115.     moveq.l    #0,d3
  1116.     move.b    pic_cycadd(a2),d3    ;richting
  1117.  
  1118.     move.l    a4,a0            ;palette pointer
  1119.     move.l    a0,a1
  1120.     add.l    d1,a0            ;startcolor
  1121.     add.l    d2,a1            ;endcolor
  1122.     
  1123.     cmp.b    #1,d3            ;omhoog
  1124.     beq.s    palcyc.up
  1125.     cmp.b    #3,d3            ;omlaag
  1126.     beq.s    palcyc.down
  1127.     bra.s    palcyc.i
  1128.  
  1129. palcyc.up                ;kleuren copieren
  1130.     move.w    (a1),d4            ;laatst color bewaren
  1131. palcyc.f                ;kleuren copieren
  1132.     cmp.l    a0,a1
  1133.     beq.s    palcyc.fa
  1134.     move.w    -(a1),2(a1)
  1135.     bra    palcyc.f
  1136. palcyc.fa
  1137.     move.w    d4,(a1)
  1138.     bra.s    palcyc.g    
  1139.     
  1140. palcyc.down
  1141.     move.w    (a0),d4            ;laatst color bewaren
  1142. palcyc.h                ;kleuren copieren
  1143.     cmp.l    a0,a1
  1144.     beq.s    palcyc.ha
  1145.     move.w    2(a0),(a0)+
  1146.     bra    palcyc.h
  1147. palcyc.ha
  1148.     move.w    d4,(a1)
  1149.  
  1150. palcyc.g
  1151.     move.b    pic_cycspd(a2),-1(a3)    ;delay zetten
  1152.     bra.s    palcyc.i
  1153. palcyc.c
  1154.     sub.w    #1,-2(a3)        ;cycle delay aftellen
  1155. palcyc.i
  1156.     add.l    #4,a2            ;next cycle info
  1157.     dbra    d7,palcyc.d
  1158.  
  1159. palcyc.qb
  1160.     movem.l    (sp)+,d0-d7/a0-a6
  1161.     rts
  1162.  
  1163.  
  1164. ;    SECTION    variabelen,DATA_c
  1165.  
  1166.     cnop    0,2
  1167. curtsk        dc.l    0
  1168. tskpri        dc.l    0
  1169. duplok        dc.l    0
  1170. inttel        dc.l    0
  1171. intdel        dc.l    0
  1172.  
  1173. form        dc.l    0
  1174. ifffil        dc.l    0
  1175. intvbold    dc.l    0
  1176. inttbeold    dc.l    0
  1177. patpos        dc.l    0
  1178. gfxlib        dc.l    0
  1179. doslib        dc.l    0
  1180. wbview      dc.l    0
  1181. mt_data        dc.l    0
  1182. memvid        dc.l    0
  1183. oldcprlist    dc.l    0
  1184. hogscr        dc.l    vew_hgt
  1185.  
  1186. inspos        dc.l    -1
  1187. anispd1        dc.w    1    ;nooit op 0 !
  1188. anispd2        dc.w    1
  1189.  
  1190.         cnop    0,2
  1191. varclr.s            ;start wissen
  1192. oldrot        dc.l    0
  1193. curpic        dc.l    0
  1194. curfrm        dc.l    0
  1195. cycdel1        ds.w    4
  1196. cycdel2        ds.w    4
  1197.  
  1198. rotinf1        dc.w    0
  1199. rotinf2        dc.w    0
  1200.  
  1201. effspd        dc.w    0
  1202. efflop        dc.b    0
  1203. anilop1        dc.b    0
  1204. anilop2        dc.b    0
  1205. anipal1        dc.b    0
  1206. anipal2        dc.b    0
  1207. rotdpl        dc.b    1
  1208. dplctr        dc.b    0
  1209.         cnop    0,2
  1210.  
  1211. insdat        ds.l    4
  1212. inspri        dc.l    0
  1213. instel        dc.w    0
  1214.  
  1215. cureff        dc.l    0
  1216. efftel        dc.w    0
  1217.  
  1218. curpal1        dc.l    0
  1219. curpal2        dc.l    0
  1220. currot1        dc.l    0
  1221. currot2        dc.l    0
  1222. curpic1        dc.l    0
  1223. curpic2        dc.l    0
  1224. anitel1        dc.w    0
  1225. anitel2        dc.w    0
  1226. curfrm1        dc.l    0
  1227. curfrm2        dc.l    0
  1228. oldfrm1        dc.l    0
  1229. oldfrm2        dc.l    0
  1230.  
  1231. varclr.e
  1232.         dc.l    0            ;wisruimte
  1233.     
  1234. varclr.ql    equ    varclr.e-varclr.s    ;wislengte
  1235.     
  1236. ;ownblit    dc.b    0
  1237. ntscmode    dc.b    0
  1238. end        dc.b    0
  1239.  
  1240. pronam    dc.b    'VideoTracker',0
  1241.     cnop    0,2
  1242. dosnam    dc.b    'dos.library',0
  1243.     cnop    0,4
  1244. gfxnam    dc.b    'graphics.library',0
  1245.     cnop    0,4
  1246.     
  1247.     cnop    0,4
  1248. gra.s
  1249. gracprscr
  1250.     dc.w    $8e,$3381,$90,$81c1,$92,$003c,$94,$00d0
  1251. gracprbpl
  1252.     dc.w    $100,$9000,$102,$0000,$104,$0020
  1253.     dc.w    $108,$0000,$10a,$0000
  1254. gracprpln
  1255.     dc.w    $e0,$0000,$e2,$0000
  1256.     dc.w    $e4,$0000,$e6,$0000
  1257.     dc.w    $e8,$0000,$ea,$0000
  1258.     dc.w    $ec,$0000,$ee,$0000
  1259.     dc.w    $f0,$0000,$f2,$0000
  1260.     dc.w    $f4,$0000,$f6,$0000
  1261. gracprcol
  1262.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1263.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1264.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1265.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1266. cprjmp
  1267.     dc.w    $080,0,$082,0
  1268. gra.e
  1269. gra.ql    equ    gra.e-gra.s        ;block lengte
  1270.  
  1271.  
  1272. cpr
  1273.     dc.w    $0001,$fffe
  1274.     dc.w    $09c,$8001        ;tbeint
  1275. cprspr
  1276.     dc.w    $120,$0000,$122,$0000
  1277.     dc.w    $124,$0000,$126,$0000
  1278.     dc.w    $128,$0000,$12a,$0000
  1279.     dc.w    $12c,$0000,$12e,$0000
  1280.     dc.w    $130,$0000,$132,$0000
  1281.     dc.w    $134,$0000,$136,$0000
  1282.     dc.w    $138,$0000,$13a,$0000
  1283.     dc.w    $13c,$0000,$13e,$0000
  1284.  
  1285. cprbuf
  1286.     dc.w    $8e,$3381,$90,$81c1,$92,$003c,$94,$00d0
  1287.     dc.w    $100,$9000,$102,$0000,$104,$0020
  1288.     dc.w    $108,$0000,$10a,$0000
  1289.     dc.w    $e0,$0000,$e2,$0000
  1290.     dc.w    $e4,$0000,$e6,$0000
  1291.     dc.w    $e8,$0000,$ea,$0000
  1292.     dc.w    $ec,$0000,$ee,$0000
  1293.     dc.w    $f0,$0000,$f2,$0000
  1294.     dc.w    $f4,$0000,$f6,$0000
  1295.     dc.w    $180,0,$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
  1296.     dc.w    $190,0,$192,0,$194,0,$196,0,$198,0,$19a,0,$19c,0,$19e,0
  1297.     dc.w    $1a0,0,$1a2,0,$1a4,0,$1a6,0,$1a8,0,$1aa,0,$1ac,0,$1ae,0
  1298.     dc.w    $1b0,0,$1b2,0,$1b4,0,$1b6,0,$1b8,0,$1ba,0,$1bc,0,$1be,0
  1299.     dc.w    $080,0,$082,0
  1300. cprbuf.e
  1301.  
  1302.     dc.w    $088,$0000        ;copjmp2
  1303.     dc.w    $080,0,$082,0        ;moet achter cprbck blijven !
  1304. cprbck
  1305. sprdat
  1306.     dc.w    $ffff,$fffe
  1307.  
  1308.  
  1309. prf_pat    equ    7            ;pref sample size
  1310. prf_patnum    equ    128        ;aantal songpos's
  1311. prf_len    equ    ((prf_pat*prf_patnum)+1)
  1312.  
  1313. prf_pos    equ    0            ;eff position (teller)
  1314.  
  1315. prf_effs    equ    1        ;start effect (*prf_patnum)
  1316. prf_effe    equ    2        ;end effect   (*prf_patnum)
  1317. prf_pri    equ    3            ;priority     (*prf_patnum)
  1318. prf_spd    equ    4            ;eff speed    (*prf_patnum)
  1319. prf_ani    equ    5            ;ani speed    (*prf_patnum)
  1320. prf_roth    equ    6        ;routine info (*prf_patnum)
  1321. prf_rotl    equ    7        ;routine info (*prf_patnum)
  1322.  
  1323. eff_num    equ    256            ;aantal effects
  1324.  
  1325. pic_wid        equ    4        ;wide in bytes
  1326. pic_hgt        equ    6        ;hoogte
  1327. pic_dpt        equ    8        ;number planes
  1328. pic_ani        equ    10        ;aantal effes (anim)
  1329. pic_vew        equ    12        ;viewmode
  1330. pic_cycstr    equ    14        ;cycle start (*4)
  1331. pic_cycend    equ    15        ;cycle end (*4)
  1332. pic_cycspd    equ    16        ;cycle speed (*4)
  1333. pic_cycadd    equ    17        ;cycle add (*4)
  1334. pic_palnum    equ    30        ;aantal kleuren
  1335. pic_pal        equ    32        ;palette start
  1336. pic_palsiz    equ    256*2        ;vaste palette size
  1337. pic_raw        equ    pic_pal+pic_palsiz    ;palette start
  1338.  
  1339. fil_namlen    equ    24        ;naamlengte
  1340. fil_len    equ    (fil_namlen+4+4)    ;effect info length
  1341. fil_num    equ    2+eff_num        ;aantal files
  1342. fil_fil    equ    0            ;file naam 
  1343. fil_dir    equ    24            ;pointer naar directory
  1344. fil_pnt    equ    28            ;pointer naar meminfo
  1345.  
  1346. palette    ds.w    64    ;palette
  1347.  
  1348. var_len        equ    $300        ;lengte vartabel
  1349.  
  1350. var__GfxBase    equ    $000        ;graphics lib
  1351. var_pic1    equ    $004        ;current picture
  1352. var_anispd1    equ    $008        ;animspeed
  1353. var_anitel1    equ    $00c        ;animspeed
  1354. var_cprbck    equ    $010        ;copperback
  1355. var_bck        equ    $014        ;background
  1356. var_pic2    equ    $018        ;current picture
  1357. var_ntsc    equ    $01c        ;ntsc/pal frequence
  1358. var_lnd        equ    $020        ;landscape
  1359. var_txt1    equ    $040        ;text
  1360. var_txt16    equ    15*4+var_txt1
  1361. var_vec1    equ    $080        ;vectors
  1362. var_vec16    equ    15*4+var_vec1
  1363. var_fon1    equ    $0c0        ;fonts
  1364. var_fon16    equ    15*4+var_fon1
  1365. var_cols1    equ    $100        ;colorsets
  1366. var_cols16    equ    15*4+var_cols1
  1367. var_obj1    equ    $180        ;objects
  1368. var_obj16    equ    15*4+var_obj1
  1369.  
  1370.     cnop    0,2
  1371. var    ds.b    $300    ;variabelen voor routines
  1372.  
  1373.     
  1374. ;    SECTION    10,CODE_C
  1375.         endc
  1376.  
  1377. ; this is the routine-source
  1378. ;**********************************************************************
  1379.  
  1380.         ifnd    rout
  1381. pic_wid        equ    4        ;wide in bytes
  1382. pic_hgt        equ    6        ;hoogte
  1383. pic_dpt        equ    8        ;number planes
  1384. pic_ani        equ    10        ;aantal effes (anim)
  1385. pic_vew        equ    12        ;viewmode
  1386. pic_cycstr    equ    14        ;cycle start (*4)
  1387. pic_cycend    equ    15        ;cycle end (*4)
  1388. pic_cycspd    equ    16        ;cycle speed (*4)
  1389. pic_cycadd    equ    17        ;cycle add (*4)
  1390. pic_palnum    equ    30        ;aantal kleuren
  1391. pic_pal        equ    32        ;palette start
  1392. pic_palsiz    equ    256*2        ;vaste palette size
  1393. pic_raw        equ    pic_pal+pic_palsiz    ;palette start
  1394.  
  1395. var_len        equ    $300        ;lengte vartabel
  1396.  
  1397. var__GfxBase    equ    $000        ;graphics lib
  1398. var_pic1    equ    $004        ;current picture
  1399. var_anispd1    equ    $008        ;animspeed
  1400. var_anitel1    equ    $00c        ;animspeed
  1401. var_cprbck    equ    $010        ;copperback
  1402. var_bck        equ    $014        ;background
  1403. var_pic2    equ    $018        ;current picture
  1404. var_ntsc    equ    $01c        ;ntsc/pal frequence
  1405. var_lnd        equ    $020        ;landscape
  1406. var_txt1    equ    $040        ;text
  1407. var_txt16    equ    15*4+var_txt1
  1408. var_vec1    equ    $080        ;vectors
  1409. var_vec16    equ    15*4+var_vec1
  1410. var_fon1    equ    $0c0        ;fonts
  1411. var_fon16    equ    15*4+var_fon1
  1412. var_cols1    equ    $100        ;colorsets
  1413. var_cols16    equ    15*4+var_cols1
  1414. var_obj1    equ    $180        ;objects
  1415. var_obj16    equ    15*4+var_obj1
  1416.  
  1417. vew_wid    equ    44
  1418. vew_hgt    equ    290
  1419. win_hgt    equ    117
  1420. win_str    equ    $1a
  1421.         endc
  1422.     
  1423.  
  1424. cop_hgt    equ    vew_hgt-4
  1425.  
  1426. ;    Input:
  1427. ;    a0=variabelen tabel
  1428. ;    d0=routinfo
  1429.  
  1430. ;    Output:
  1431. ;    a0=picture
  1432. ;    d1=copperlist
  1433.  
  1434.  
  1435. rottest            ;enables a test-picture to see the wave
  1436.  
  1437.     SECTION    3,CODE_C
  1438.  
  1439. rot
  1440.     dc.l    'ROUT'
  1441.     movem.l    d1-d7/a1-a6,-(sp)
  1442.  
  1443.     lea    ($dff000).l,a6    ;hardware
  1444.     lea    rot,a5        ;prog base
  1445.  
  1446.     move.w    d0,d1
  1447.     divs    #64,d1
  1448.     and.l    #$ffff,d1
  1449.     move.l    d1,d7        ;grote
  1450.     muls    #64,d1
  1451.     sub.w    d1,d0
  1452.     move.l    d0,d6        ;180
  1453.  
  1454.     move.w    d0,d1
  1455.     divs    #16,d1
  1456.     and.l    #$ffff,d1
  1457.     move.l    d1,a4        ;scrollway
  1458.     btst    #1,d1
  1459.     beq    rot.a
  1460.     move.l    #-1,a4
  1461. rot.a
  1462.     muls    #16,d1
  1463.     sub.w    d1,d0
  1464.     move.l    d0,d6        ;180
  1465.  
  1466. rot.end
  1467.     bsr    rot.fil
  1468.  
  1469.     movem.l    d0-d7/a0-a6,-(sp)
  1470.  
  1471.     move.l    var_cprbck(a0),d1
  1472.     sub.l    #8,d1
  1473.  
  1474.     lea    rot.cop1,a1        ;copperjump adres zetten
  1475.     move.w    d1,6(a1)
  1476.     swap    d1
  1477.     move.w    d1,2(a1)
  1478.  
  1479.     move.l    a1,a2
  1480.     add.l    #rot.cprbck1ntsc-rot.cop1,a2
  1481.     move.l    a1,a3
  1482.     add.l    #rot.cprend1ntsc-rot.cop1,a3
  1483.     move.l    a1,a4
  1484.     add.l    #rot.cprbck1-rot.cop1,a4
  1485.  
  1486.     cmp.b    #50,var_ntsc(a0)    ;ntsc/pal frequence
  1487.     bne    rot.ntsc
  1488.  
  1489.     move.l    #$8a01fffe,(a2)    ;reset ntsc split
  1490.     move.l    #$0001fffe,(a3)    ;reset ntsc end
  1491.     add.l    #rot.cprbck1-rot.cop1,a1
  1492.     move.l    #$c201fffe,d0
  1493.     bra    rot.split
  1494. rot.ntsc
  1495.     move.l    #$c201fffe,(a4)    ;reset pal split
  1496.     move.l    #$00880000,(a3)    ;set ntsc end
  1497.     add.l    #rot.cprbck1ntsc-rot.cop1,a1
  1498.     move.l    #$8a01fffe,d0
  1499.  
  1500. rot.split
  1501.     move.l    #$00880000,(a1)    ;set break
  1502.     move.l    var_cprbck(a0),a2
  1503.     cmp.b    #$ff,(a2)        ;menu uit ?
  1504.     bne    rot.cont
  1505.     move.l    d0,(a1)
  1506. rot.cont
  1507.     movem.l    (sp)+,d0-d7/a0-a6
  1508.  
  1509. ;    lea    rot.cprjmp,a1
  1510. ;    lea    rot.cprbck,a3
  1511. ;    move.l    var_cprbck(a0),a2
  1512. ;    move.l    a2,d1
  1513. ;    sub.l    #8,d1
  1514.     
  1515. ;    move.l    #$c201fffe,(a3)
  1516. ;    cmp.b    #$ff,(a2)        ;menu uit ?
  1517. ;    beq    rot.enda
  1518. ;    move.l    #$00880000,(a3)    ;set break
  1519. ;rot.enda
  1520. ;    move.w    d1,6(a1)
  1521. ;    swap    d1
  1522. ;    move.w    d1,2(a1)
  1523.  
  1524.     bsr    rot.col
  1525.  
  1526.     sub.l    a0,a0        ;geen pic
  1527.     movem.l    (sp)+,d1-d7/a1-a6
  1528.     lea    rot.cop1,a1        ;copperlist
  1529.     move.l    a1,d1
  1530.  
  1531.     ifd    rottest
  1532.     lea    rot.pic,a0        ;picture
  1533.     endc
  1534.     rts
  1535.  
  1536. rot.fil
  1537.     movem.l    d0-d7/a0-a6,-(sp)
  1538.     lea    rot.copcol1,a1    ;copperlist
  1539.     tst.b    (a1)        ;al gevuld ?
  1540.     bne    rot.filf
  1541.  
  1542.     move.w    #$1a,d6
  1543.     move.w    #cop_hgt-1,d5
  1544. rot.filc
  1545.     move.l    #$0001fffe,(a1)+
  1546.     move.b    d6,-4(a1)
  1547.     move.l    #$01020000,(a1)+
  1548.     move.l    #$00d9fffe,(a1)+
  1549.     move.b    d6,-4(a1)
  1550.     add.w    #1,d6
  1551.     dbra    d5,rot.filc
  1552. rot.filf
  1553.     movem.l    (sp)+,d0-d7/a0-a6
  1554.     rts
  1555.  
  1556. rot.col
  1557.     movem.l    d0-d7/a0-a6,-(sp)
  1558.     lea    rot.pdat,a1        ;pointerdat
  1559.     muls    #4,d6        ;pointer pos !!!
  1560.  
  1561.     lea    rot.dat,a0        ;pointerdat
  1562.     add.l    (a1,d6),a0        ;wave dat
  1563.  
  1564.     move.l    a4,(a0)        ;scrollway !!!
  1565.     
  1566.     move.l    (a0)+,d1        ;addscroll
  1567.     move.l    (a0)+,d2        ;scrollend
  1568.     move.l    (a0)+,d3        ;addanim
  1569.     move.l    (a0)+,d4        ;animend
  1570.     move.l    (a0)+,d0        ;scrollpos
  1571.     move.l    (a0)+,d5        ;animpos
  1572.             
  1573.     add.l    d5,d0
  1574.     add.l    d5,d2
  1575.     
  1576.     lea    rot.copcol1,a1    ;copperlist
  1577.     add.l    #1,d7        ;grote !!!!
  1578.     clr.l    d1        ;delay
  1579.     move.w    #cop_hgt-1,d6
  1580. rot.cola
  1581.     move.b    (a0,d0),7(a1)
  1582.     add.l    #12,a1
  1583.  
  1584.     tst.l    d1
  1585.     bne    rot.colaa
  1586.     move.l    d7,d1
  1587.     add.l    #1,d0
  1588. rot.colaa
  1589.     sub.l    #1,d1
  1590.     
  1591.     cmp.l    d2,d0
  1592.     bne    rot.colb
  1593.     move.l    d5,d0
  1594. rot.colb
  1595.     dbra    d6,rot.cola
  1596.  
  1597.     move.l    -24(a0),d1        ;addscroll
  1598.     move.l    -20(a0),d2        ;scrollend
  1599.     move.l    -8(a0),d0        ;scrollpos
  1600.     add.l    d1,d0
  1601.     cmp.l    d2,d0
  1602.     bne    rot.cold
  1603.     clr.l    d0
  1604. rot.cold
  1605.     cmp.l    #0,d0
  1606.     bge    rot.colda
  1607.     move.l    d2,d0
  1608.     sub.l    #1,d0
  1609. rot.colda
  1610.     move.l    d0,-8(a0)        ;scrollpos
  1611.  
  1612.     move.l    -16(a0),d3        ;addanim
  1613.     move.l    -12(a0),d4        ;animend
  1614.     move.l    -4(a0),d5        ;animpos
  1615.     add.l    d3,d5
  1616.     cmp.l    d4,d5
  1617.     bne    rot.colc
  1618.     clr.l    d5
  1619. rot.colc
  1620.     cmp.l    #0,d5
  1621.     bge    rot.colca
  1622.     move.l    d4,d5
  1623.     sub.l    #1,d5
  1624. rot.colca
  1625.     move.l    d5,-4(a0)
  1626.  
  1627.     movem.l    (sp)+,d0-d7/a0-a6
  1628.     rts
  1629.  
  1630. rot.pdat
  1631.     dc.l    0,(rot.d3-rot.dat)
  1632.     dc.l    (rot.d6-rot.dat)
  1633.     dc.l    (rot.d9-rot.dat)
  1634.     dc.l    (rot.d10-rot.dat)
  1635.     dc.l    (rot.d11-rot.dat)
  1636.     dc.l    (rot.d12-rot.dat)
  1637.     dc.l    (rot.d13-rot.dat)
  1638.     dc.l    (rot.d14-rot.dat)
  1639.     dc.l    (rot.d15-rot.dat)
  1640.  
  1641.     ds.l    16
  1642.  
  1643. rot.dat
  1644.  
  1645.     ;saw-shaped
  1646. rot.d0
  1647.     dc.l    0,(rot.d0.e-rot.d0-24),0,(rot.d0.e-rot.d0-24),0,0
  1648.     dc.b    $77,$88,$99,$aa,$bb,$cc,$dd,$ee
  1649.     dc.b    $ff,$ee,$dd,$cc,$bb,$aa,$99,$88
  1650.     dc.b    $77,$66,$55,$44,$33,$22,$11,$00
  1651.     dc.b    $11,$22,$33,$44,$55,$66
  1652. rot.d0.e
  1653.     cnop    0,2
  1654.  
  1655.     ;saw-shaped growing
  1656. rot.d3
  1657.     dc.l    0,(rot.d3.e-rot.d3-24),(rot.d3.e-rot.d3-24),(rot.d3.ea-rot.d3-24),0,0
  1658.     dc.b    $77,$77,$77,$77,$77,$77,$77,$77    ;$7
  1659.     dc.b    $77,$77,$77,$77,$77,$77,$77
  1660.     dc.b    $77,$77,$77,$77,$77,$77,$77,$77
  1661.     dc.b    $77,$77,$77,$77,$77,$77,$77
  1662. rot.d3.e
  1663.     dc.b    $77,$77,$77,$77,$77,$77,$77,$77    ;$8
  1664.     dc.b    $88,$88,$88,$88,$88,$88,$88
  1665.     dc.b    $77,$77,$77,$77,$77,$77,$77,$77
  1666.     dc.b    $66,$66,$66,$66,$66,$66,$66
  1667.  
  1668.     dc.b    $77,$77,$77,$88,$88,$88,$88,$99    ;$9
  1669.     dc.b    $99,$99,$99,$88,$88,$88,$88
  1670.     dc.b    $77,$77,$77,$66,$66,$66,$66,$55
  1671.     dc.b    $55,$55,$55,$66,$66,$66,$66
  1672.  
  1673.     dc.b    $77,$77,$88,$88,$88,$99,$99,$99    ;$a
  1674.     dc.b    $aa,$aa,$99,$99,$99,$88,$88
  1675.     dc.b    $77,$77,$66,$66,$66,$55,$55,$55
  1676.     dc.b    $44,$44,$55,$55,$55,$66,$66
  1677.  
  1678.     dc.b    $77,$88,$88,$99,$99,$aa,$aa,$bb    ;$b
  1679.     dc.b    $bb,$aa,$aa,$99,$99,$88,$88
  1680.     dc.b    $77,$66,$66,$55,$55,$44,$44,$33
  1681.     dc.b    $33,$44,$44,$55,$55,$66,$66
  1682.  
  1683.     dc.b    $77,$88,$88,$99,$aa,$aa,$bb,$cc    ;$c
  1684.     dc.b    $cc,$bb,$aa,$aa,$99,$88,$88
  1685.     dc.b    $77,$66,$66,$55,$44,$44,$33,$22
  1686.     dc.b    $22,$33,$44,$44,$55,$66,$66
  1687.  
  1688.     dc.b    $77,$88,$99,$aa,$aa,$bb,$cc,$dd    ;$d
  1689.     dc.b    $dd,$cc,$bb,$aa,$aa,$99,$88
  1690.     dc.b    $88,$77,$66,$55,$55,$44,$33,$22
  1691.     dc.b    $22,$22,$33,$44,$44,$55,$66
  1692.  
  1693.     dc.b    $77,$88,$99,$aa,$bb,$bb,$cc,$dd    ;$e
  1694.     dc.b    $ee,$dd,$cc,$bb,$bb,$aa,$99
  1695.     dc.b    $88,$77,$66,$55,$44,$44,$33,$22
  1696.     dc.b    $11,$22,$33,$44,$44,$55,$66
  1697.  
  1698.     dc.b    $77,$88,$99,$aa,$bb,$cc,$dd,$ee    ;$f
  1699.     dc.b    $ff,$ee,$dd,$cc,$bb,$aa,$99
  1700.     dc.b    $88,$77,$66,$55,$44,$33,$22,$11
  1701.     dc.b    $00,$11,$22,$33,$44,$55,$66
  1702.  
  1703.     dc.b    $77,$88,$99,$aa,$bb,$bb,$cc,$dd    ;$e
  1704.     dc.b    $ee,$dd,$cc,$bb,$bb,$aa,$99
  1705.     dc.b    $88,$77,$66,$55,$44,$44,$33,$22
  1706.     dc.b    $11,$22,$33,$44,$44,$55,$66
  1707.  
  1708.     dc.b    $77,$88,$99,$aa,$aa,$bb,$cc,$dd    ;$d
  1709.     dc.b    $dd,$cc,$bb,$aa,$aa,$99,$88
  1710.     dc.b    $88,$77,$66,$55,$55,$44,$33,$22
  1711.     dc.b    $22,$22,$33,$44,$44,$55,$66
  1712.  
  1713.     dc.b    $77,$88,$88,$99,$aa,$aa,$bb,$cc    ;$c
  1714.     dc.b    $cc,$bb,$aa,$aa,$99,$88,$88
  1715.     dc.b    $77,$66,$66,$55,$44,$44,$33,$22
  1716.     dc.b    $22,$33,$44,$44,$55,$66,$66
  1717.  
  1718.     dc.b    $77,$88,$88,$99,$99,$aa,$aa,$bb    ;$b
  1719.     dc.b    $bb,$aa,$aa,$99,$99,$88,$88
  1720.     dc.b    $77,$66,$66,$55,$55,$44,$44,$33
  1721.     dc.b    $33,$44,$44,$55,$55,$66,$66
  1722.  
  1723.     dc.b    $77,$77,$88,$88,$88,$99,$99,$99    ;$a
  1724.     dc.b    $aa,$aa,$99,$99,$99,$88,$88
  1725.     dc.b    $77,$77,$66,$66,$66,$55,$55,$55
  1726.     dc.b    $44,$44,$55,$55,$55,$66,$66
  1727.  
  1728.     dc.b    $77,$77,$77,$88,$88,$88,$88,$99    ;$9
  1729.     dc.b    $99,$99,$99,$88,$88,$88,$88
  1730.     dc.b    $77,$77,$77,$66,$66,$66,$66,$55
  1731.     dc.b    $55,$55,$55,$66,$66,$66,$66
  1732.  
  1733.     dc.b    $77,$77,$77,$77,$77,$77,$77,$77    ;$8
  1734.     dc.b    $88,$88,$88,$88,$88,$88,$88
  1735.     dc.b    $77,$77,$77,$77,$77,$77,$77,$77
  1736.     dc.b    $66,$66,$66,$66,$66,$66,$66
  1737.  
  1738.  
  1739.  
  1740.     dc.b    $77,$77,$77,$77,$77,$77,$77,$77    ;$7
  1741.     dc.b    $77,$77,$77,$77,$77,$77,$77
  1742.     dc.b    $77,$77,$77,$77,$77,$77,$77,$77
  1743.     dc.b    $77,$77,$77,$77,$77,$77,$77
  1744.  
  1745.     dc.b    $77,$77,$77,$77,$77,$77,$77,$77
  1746.     dc.b    $66,$66,$66,$66,$66,$66,$66
  1747.     dc.b    $77,$77,$77,$77,$77,$77,$77,$77    ;$8
  1748.     dc.b    $88,$88,$88,$88,$88,$88,$88
  1749.  
  1750.     dc.b    $77,$77,$77,$66,$66,$66,$66,$55
  1751.     dc.b    $55,$55,$55,$66,$66,$66,$66
  1752.     dc.b    $77,$77,$77,$88,$88,$88,$88,$99    ;$9
  1753.     dc.b    $99,$99,$99,$88,$88,$88,$88
  1754.  
  1755.     dc.b    $77,$77,$66,$66,$66,$55,$55,$55
  1756.     dc.b    $44,$44,$55,$55,$55,$66,$66
  1757.     dc.b    $77,$77,$88,$88,$88,$99,$99,$99    ;$a
  1758.     dc.b    $aa,$aa,$99,$99,$99,$88,$88
  1759.  
  1760.     dc.b    $77,$66,$66,$55,$55,$44,$44,$33
  1761.     dc.b    $33,$44,$44,$55,$55,$66,$66
  1762.     dc.b    $77,$88,$88,$99,$99,$aa,$aa,$bb    ;$b
  1763.     dc.b    $bb,$aa,$aa,$99,$99,$88,$88
  1764.  
  1765.     dc.b    $77,$66,$66,$55,$44,$44,$33,$22
  1766.     dc.b    $22,$33,$44,$44,$55,$66,$66
  1767.     dc.b    $77,$88,$88,$99,$aa,$aa,$bb,$cc    ;$c
  1768.     dc.b    $cc,$bb,$aa,$aa,$99,$88,$88
  1769.  
  1770.     dc.b    $88,$77,$66,$55,$55,$44,$33,$22
  1771.     dc.b    $22,$22,$33,$44,$44,$55,$66
  1772.     dc.b    $77,$88,$99,$aa,$aa,$bb,$cc,$dd    ;$d
  1773.     dc.b    $dd,$cc,$bb,$aa,$aa,$99,$88
  1774.  
  1775.     dc.b    $88,$77,$66,$55,$44,$44,$33,$22
  1776.     dc.b    $11,$22,$33,$44,$44,$55,$66
  1777.     dc.b    $77,$88,$99,$aa,$bb,$bb,$cc,$dd    ;$e
  1778.     dc.b    $ee,$dd,$cc,$bb,$bb,$aa,$99
  1779.  
  1780.     dc.b    $88,$77,$66,$55,$44,$33,$22,$11
  1781.     dc.b    $00,$11,$22,$33,$44,$55,$66
  1782.     dc.b    $77,$88,$99,$aa,$bb,$cc,$dd,$ee    ;$f
  1783.     dc.b    $ff,$ee,$dd,$cc,$bb,$aa,$99
  1784.  
  1785.     dc.b    $88,$77,$66,$55,$44,$44,$33,$22
  1786.     dc.b    $11,$22,$33,$44,$44,$55,$66
  1787.     dc.b    $77,$88,$99,$aa,$bb,$bb,$cc,$dd    ;$e
  1788.     dc.b    $ee,$dd,$cc,$bb,$bb,$aa,$99
  1789.  
  1790.     dc.b    $88,$77,$66,$55,$55,$44,$33,$22
  1791.     dc.b    $22,$22,$33,$44,$44,$55,$66
  1792.     dc.b    $77,$88,$99,$aa,$aa,$bb,$cc,$dd    ;$d
  1793.     dc.b    $dd,$cc,$bb,$aa,$aa,$99,$88
  1794.  
  1795.     dc.b    $77,$66,$66,$55,$44,$44,$33,$22
  1796.     dc.b    $22,$33,$44,$44,$55,$66,$66
  1797.     dc.b    $77,$88,$88,$99,$aa,$aa,$bb,$cc    ;$c
  1798.     dc.b    $cc,$bb,$aa,$aa,$99,$88,$88
  1799.  
  1800.     dc.b    $77,$66,$66,$55,$55,$44,$44,$33
  1801.     dc.b    $33,$44,$44,$55,$55,$66,$66
  1802.     dc.b    $77,$88,$88,$99,$99,$aa,$aa,$bb    ;$b
  1803.     dc.b    $bb,$aa,$aa,$99,$99,$88,$88
  1804.  
  1805.     dc.b    $77,$77,$66,$66,$66,$55,$55,$55
  1806.     dc.b    $44,$44,$55,$55,$55,$66,$66
  1807.     dc.b    $77,$77,$88,$88,$88,$99,$99,$99    ;$a
  1808.     dc.b    $aa,$aa,$99,$99,$99,$88,$88
  1809.  
  1810.     dc.b    $77,$77,$77,$66,$66,$66,$66,$55
  1811.     dc.b    $55,$55,$55,$66,$66,$66,$66
  1812.     dc.b    $77,$77,$77,$88,$88,$88,$88,$99    ;$9
  1813.     dc.b    $99,$99,$99,$88,$88,$88,$88
  1814.  
  1815.     dc.b    $77,$77,$77,$77,$77,$77,$77,$77
  1816.     dc.b    $66,$66,$66,$66,$66,$66,$66
  1817.     dc.b    $77,$77,$77,$77,$77,$77,$77,$77    ;$8
  1818.     dc.b    $88,$88,$88,$88,$88,$88,$88
  1819.  
  1820. rot.d3.ea
  1821.     
  1822.     cnop    0,2
  1823.     
  1824.     ;sin-shaped
  1825. rot.d6
  1826.     dc.l    0,(rot.d6.e-rot.d6-24),0,(rot.d6.e-rot.d6-24),0,0
  1827.  
  1828.  dc.b $77,$88,$99,$aa,$bb,$cc,$dd,$dd,$ee,$ee,$ee,$ee
  1829.  dc.b $ee,$dd,$dd,$cc,$bb,$aa,$99,$88,$77,$66,$55,$44
  1830.  dc.b $33,$22,$11,$11,$00,$00,$00,$00,$00,$11,$11,$22
  1831.  dc.b $33,$44,$55,$66,$77
  1832.  
  1833. rot.d6.e
  1834.     cnop    0,2
  1835.  
  1836.     ;sin-shaped 4 sizes 
  1837. rot.d9
  1838.     dc.l    0,(rot.d9.e-rot.d9-24),0,(rot.d9.e-rot.d9-24),0,0
  1839.  
  1840.  dc.b $77,$99,$bb,$dd,$ee,$ee,$dd,$bb,$99,$77,$55,$33
  1841.  dc.b $11,$00,$00,$11,$33,$55,$77
  1842.  
  1843.  dc.b $77,$88,$99,$aa,$bb,$cc,$dd,$dd,$ee,$ee,$ee,$ee
  1844.  dc.b $ee,$dd,$dd,$cc,$bb,$aa,$99,$88,$77,$66,$55,$44
  1845.  dc.b $33,$22,$11,$11,$00,$00,$00,$00,$00,$11,$11,$22
  1846.  dc.b $33,$44,$55,$66,$77
  1847.  
  1848.  dc.b $77,$88,$88,$99,$99,$aa,$aa,$bb,$bb,$cc,$cc,$dd
  1849.  dc.b $dd,$dd,$ee,$ee,$ee,$ee,$ee,$ee,$ee,$ee,$ee,$dd
  1850.  dc.b $dd,$dd,$cc,$cc,$bb,$bb,$bb,$aa,$99,$99,$88,$88
  1851.  dc.b $77,$66,$66,$55,$55,$44,$44,$33,$33,$22,$22,$11
  1852.  dc.b $11,$11,$00,$00,$00,$00,$00,$00,$00,$00,$00,$11
  1853.  dc.b $11,$11,$22,$22,$33,$33,$33,$44,$55,$55,$66,$66
  1854.  dc.b $77
  1855.  
  1856.  dc.b $77,$77,$77,$88,$88,$88,$88,$99,$99,$99,$99,$aa
  1857.  dc.b $aa,$aa,$aa,$aa,$bb,$bb,$bb,$bb,$bb,$cc,$cc,$cc
  1858.  dc.b $cc,$cc,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$dd,$ee
  1859.  dc.b $ee,$ee,$ee,$ee,$ee,$ee,$ee,$ee,$ee,$ee,$ee,$ee
  1860.  dc.b $ee,$ee,$ee,$ee,$ee,$ee,$ee,$ee,$dd,$dd,$dd,$dd
  1861.  dc.b $dd,$dd,$dd,$dd,$dd,$cc,$cc,$cc,$cc,$cc,$bb,$bb
  1862.  dc.b $bb,$bb,$bb,$bb,$aa,$aa,$aa,$aa,$99,$99,$99,$99
  1863.  dc.b $88,$88,$88,$88,$77,$77,$77,$77,$77,$66,$66,$66
  1864.  dc.b $66,$55,$55,$55,$55,$44,$44,$44,$44,$44,$33,$33
  1865.  dc.b $33,$33,$33,$22,$22,$22,$22,$22,$11,$11,$11,$11
  1866.  dc.b $11,$11,$11,$11,$11,$00,$00,$00,$00,$00,$00,$00
  1867.  dc.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  1868.  dc.b $00,$00,$11,$11,$11,$11,$11,$11,$11,$11,$11,$22
  1869.  dc.b $22,$22,$22,$22,$33,$33,$33,$33,$33,$33,$44,$44
  1870.  dc.b $44,$44,$55,$55,$55,$55,$66,$66,$66,$66,$77,$77
  1871.  dc.b $77
  1872.  
  1873.  dc.b $77,$88,$88,$99,$99,$aa,$aa,$bb,$bb,$cc,$cc,$dd
  1874.  dc.b $dd,$dd,$ee,$ee,$ee,$ee,$ee,$ee,$ee,$ee,$ee,$dd
  1875.  dc.b $dd,$dd,$cc,$cc,$bb,$bb,$bb,$aa,$99,$99,$88,$88
  1876.  dc.b $77,$66,$66,$55,$55,$44,$44,$33,$33,$22,$22,$11
  1877.  dc.b $11,$11,$00,$00,$00,$00,$00,$00,$00,$00,$00,$11
  1878.  dc.b $11,$11,$22,$22,$33,$33,$33,$44,$55,$55,$66,$66
  1879.  dc.b $77
  1880.  
  1881.  dc.b $77,$88,$99,$aa,$bb,$cc,$dd,$dd,$ee,$ee,$ee,$ee
  1882.  dc.b $ee,$dd,$dd,$cc,$bb,$aa,$99,$88,$77,$66,$55,$44
  1883.  dc.b $33,$22,$11,$11,$00,$00,$00,$00,$00,$11,$11,$22
  1884.  dc.b $33,$44,$55,$66,$77
  1885.  
  1886. rot.d9.e
  1887.     cnop    0,2
  1888.  
  1889.  
  1890.  
  1891.     ;")"-shaped 
  1892. rot.d10
  1893.     dc.l    0,(rot.d10.e-rot.d10-24),0,(rot.d10.e-rot.d10-24),0,0
  1894.  
  1895.  dc.b $00,$11,$33,$44,$55,$66,$77,$99,$aa,$bb,$bb,$cc
  1896.  dc.b $dd,$ee,$ee,$ee,$ff,$ff,$ff,$ff,$ff,$ee,$ee,$ee
  1897.  dc.b $dd,$cc,$bb,$bb,$aa,$99,$88,$66,$55,$44,$33,$11
  1898.  dc.b $00
  1899.  
  1900. rot.d10.e
  1901.     cnop    0,2
  1902.  
  1903.     ;")"-shaped 3 sizes
  1904. rot.d11
  1905.     dc.l    0,(rot.d11.e-rot.d11-24),0,(rot.d11.e-rot.d11-24),0,0
  1906.  
  1907.  dc.b $00,$11,$33,$44,$55,$66,$77,$99,$aa,$bb,$bb,$cc
  1908.  dc.b $dd,$ee,$ee,$ee,$ff,$ff,$ff,$ff,$ff,$ee,$ee,$ee
  1909.  dc.b $dd,$cc,$bb,$bb,$aa,$99,$88,$66,$55,$44,$33,$11
  1910.  dc.b $00
  1911.  
  1912.  dc.b $00,$11,$11,$22,$22,$33,$33,$44,$44,$55,$55,$66
  1913.  dc.b $66,$77,$77,$77,$88,$88,$99,$99,$aa,$aa,$aa,$bb
  1914.  dc.b $bb,$bb,$cc,$cc,$cc,$dd,$dd,$dd,$dd,$ee,$ee,$ee
  1915.  dc.b $ee,$ee,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
  1916.  dc.b $ff,$ff,$ff,$ff,$ff,$ee,$ee,$ee,$ee,$ee,$dd,$dd
  1917.  dc.b $dd,$dd,$cc,$cc,$cc,$bb,$bb,$bb,$aa,$aa,$aa,$99
  1918.  dc.b $99,$88,$88,$88,$77,$77,$66,$66,$55,$55,$44,$44
  1919.  dc.b $33,$33,$22,$22,$11,$11,$00
  1920.  
  1921.  dc.b $00,$00,$11,$11,$11,$11,$22,$22,$22,$22,$33,$33
  1922.  dc.b $33,$33,$44,$44,$44,$44,$55,$55,$55,$55,$66,$66
  1923.  dc.b $66,$66,$77,$77,$77,$77,$77,$88,$88,$88,$88,$99
  1924.  dc.b $99,$99,$99,$99,$aa,$aa,$aa,$aa,$aa,$bb,$bb,$bb
  1925.  dc.b $bb,$bb,$bb,$cc,$cc,$cc,$cc,$cc,$cc,$dd,$dd,$dd
  1926.  dc.b $dd,$dd,$dd,$dd,$dd,$ee,$ee,$ee,$ee,$ee,$ee,$ee
  1927.  dc.b $ee,$ee,$ee,$ee,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
  1928.  dc.b $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
  1929.  dc.b $ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ee,$ee,$ee
  1930.  dc.b $ee,$ee,$ee,$ee,$ee,$ee,$ee,$ee,$dd,$dd,$dd,$dd
  1931.  dc.b $dd,$dd,$dd,$dd,$cc,$cc,$cc,$cc,$cc,$cc,$bb,$bb
  1932.  dc.b $bb,$bb,$bb,$bb,$aa,$aa,$aa,$aa,$aa,$99,$99,$99
  1933.  dc.b $99,$99,$88,$88,$88,$88,$88,$77,$77,$77,$77,$66
  1934.  dc.b $66,$66,$66,$55,$55,$55,$55,$44,$44,$44,$44,$33
  1935.  dc.b $33,$33,$33,$22,$22,$22,$22,$11,$11,$11,$11,$00
  1936.  dc.b $00
  1937.  
  1938.  dc.b $00,$11,$11,$22,$22,$33,$33,$44,$44,$55,$55,$66
  1939.  dc.b $66,$77,$77,$77,$88,$88,$99,$99,$aa,$aa,$aa,$bb
  1940.  dc.b $bb,$bb,$cc,$cc,$cc,$dd,$dd,$dd,$dd,$ee,$ee,$ee
  1941.  dc.b $ee,$ee,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff
  1942.  dc.b $ff,$ff,$ff,$ff,$ff,$ee,$ee,$ee,$ee,$ee,$dd,$dd
  1943.  dc.b $dd,$dd,$cc,$cc,$cc,$bb,$bb,$bb,$aa,$aa,$aa,$99
  1944.  dc.b $99,$88,$88,$88,$77,$77,$66,$66,$55,$55,$44,$44
  1945.  dc.b $33,$33,$22,$22,$11,$11,$00
  1946.  
  1947.  
  1948. rot.d11.e
  1949.     cnop    0,2
  1950.  
  1951.     ;"("-shaped 
  1952. rot.d12
  1953.     dc.l    0,(rot.d12.e-rot.d12-24),0,(rot.d12.e-rot.d12-24),0,0
  1954.  
  1955.  dc.b $ff,$ee,$cc,$bb,$aa,$99,$88,$66,$55,$44,$44,$33
  1956.  dc.b $22,$11,$11,$11,$00,$00,$00,$00,$00,$11,$11,$11
  1957.  dc.b $22,$33,$44,$44,$55,$66,$77,$99,$aa,$bb,$cc,$ee
  1958.  dc.b $ff
  1959.  
  1960. rot.d12.e
  1961.     cnop    0,2
  1962.  
  1963.     ;"("-shaped 3 sizes
  1964. rot.d13
  1965.     dc.l    0,(rot.d13.e-rot.d13-24),0,(rot.d13.e-rot.d13-24),0,0
  1966.  
  1967.  dc.b $ff,$ee,$cc,$bb,$aa,$99,$88,$66,$55,$44,$44,$33
  1968.  dc.b $22,$11,$11,$11,$00,$00,$00,$00,$00,$11,$11,$11
  1969.  dc.b $22,$33,$44,$44,$55,$66,$77,$99,$aa,$bb,$cc,$ee
  1970.  dc.b $ff
  1971.  
  1972.  dc.b $ff,$ee,$ee,$dd,$dd,$cc,$cc,$bb,$bb,$aa,$aa,$99
  1973.  dc.b $99,$88,$88,$88,$77,$77,$66,$66,$55,$55,$55,$44
  1974.  dc.b $44,$44,$33,$33,$33,$22,$22,$22,$22,$11,$11,$11
  1975.  dc.b $11,$11,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  1976.  dc.b $00,$00,$00,$00,$00,$11,$11,$11,$11,$11,$22,$22
  1977.  dc.b $22,$22,$33,$33,$33,$44,$44,$44,$55,$55,$55,$66
  1978.  dc.b $66,$77,$77,$77,$88,$88,$99,$99,$aa,$aa,$bb,$bb
  1979.  dc.b $cc,$cc,$dd,$dd,$ee,$ee,$ff
  1980.  
  1981.  
  1982.  dc.b $ff,$ff,$ee,$ee,$ee,$ee,$dd,$dd,$dd,$dd,$cc,$cc
  1983.  dc.b $cc,$cc,$bb,$bb,$bb,$bb,$aa,$aa,$aa,$aa,$99,$99
  1984.  dc.b $99,$99,$88,$88,$88,$88,$88,$77,$77,$77,$77,$66
  1985.  dc.b $66,$66,$66,$66,$55,$55,$55,$55,$55,$44,$44,$44
  1986.  dc.b $44,$44,$44,$33,$33,$33,$33,$33,$33,$22,$22,$22
  1987.  dc.b $22,$22,$22,$22,$22,$11,$11,$11,$11,$11,$11,$11
  1988.  dc.b $11,$11,$11,$11,$00,$00,$00,$00,$00,$00,$00,$00
  1989.  dc.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  1990.  dc.b $00,$00,$00,$00,$00,$00,$00,$00,$00,$11,$11,$11
  1991.  dc.b $11,$11,$11,$11,$11,$11,$11,$11,$22,$22,$22,$22
  1992.  dc.b $22,$22,$22,$22,$33,$33,$33,$33,$33,$33,$44,$44
  1993.  dc.b $44,$44,$44,$44,$55,$55,$55,$55,$55,$66,$66,$66
  1994.  dc.b $66,$66,$77,$77,$77,$77,$77,$88,$88,$88,$88,$99
  1995.  dc.b $99,$99,$99,$aa,$aa,$aa,$aa,$bb,$bb,$bb,$bb,$cc
  1996.  dc.b $cc,$cc,$cc,$dd,$dd,$dd,$dd,$ee,$ee,$ee,$ee,$ff
  1997.  dc.b $ff
  1998.  
  1999.  dc.b $ff,$ee,$ee,$dd,$dd,$cc,$cc,$bb,$bb,$aa,$aa,$99
  2000.  dc.b $99,$88,$88,$88,$77,$77,$66,$66,$55,$55,$55,$44
  2001.  dc.b $44,$44,$33,$33,$33,$22,$22,$22,$22,$11,$11,$11
  2002.  dc.b $11,$11,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
  2003.  dc.b $00,$00,$00,$00,$00,$11,$11,$11,$11,$11,$22,$22
  2004.  dc.b $22,$22,$33,$33,$33,$44,$44,$44,$55,$55,$55,$66
  2005.  dc.b $66,$77,$77,$77,$88,$88,$99,$99,$aa,$aa,$bb,$bb
  2006.  dc.b $cc,$cc,$dd,$dd,$ee,$ee,$ff
  2007.  
  2008. rot.d13.e
  2009.     cnop    0,$22
  2010.  
  2011.     ;mixed sinus-shaped double playfield
  2012. rot.d14
  2013.     dc.l    0,(rot.d14.e-rot.d14-24),0,(rot.d14.e-rot.d14-24),0,0
  2014.  
  2015.  dc.b $77,$68,$59,$4a,$3b,$2c,$1d,$1d,$0e,$0e
  2016.  dc.b $0e,$0e,$0e,$1d,$1d,$2c,$3b,$4a,$59,$68
  2017.  
  2018.  dc.b $77,$86,$95,$a4,$b3,$c2,$d1,$d1,$e0,$e0
  2019.  dc.b $e0,$e0,$e0,$d1,$d1,$c2,$b3,$a4,$95,$86,$77
  2020.  
  2021. rot.d14.e
  2022.     cnop    0,2
  2023.  
  2024.     ;mixed sinus-shaped normal
  2025. rot.d15
  2026.     dc.l    0,(rot.d15.e-rot.d15-24),0,(rot.d15.e-rot.d15-24),0,0
  2027.  
  2028.  dc.b $77,$77,$88,$66,$99,$55,$aa,$44,$bb,$33
  2029.  dc.b $cc,$22,$dd,$11,$dd,$11,$ee,$00,$ee,$00
  2030.  dc.b $ee,$00,$ee,$00,$ee,$00,$dd,$11,$dd,$11
  2031.  dc.b $cc,$22,$bb,$33,$aa,$44,$99,$55,$88,$66
  2032.  
  2033.  dc.b $77,$77,$66,$88,$55,$99,$44,$aa,$33,$bb
  2034.  dc.b $22,$cc,$11,$dd,$11,$dd,$00,$ee,$00,$ee
  2035.  dc.b $00,$ee,$00,$ee,$00,$ee,$11,$dd,$11,$dd
  2036.  dc.b $22,$cc,$33,$bb,$44,$aa,$55,$99,$66,$88,$77,$77
  2037.  
  2038. rot.d15.e
  2039.     cnop    0,2
  2040.  
  2041. rot.cop1
  2042. rot.cprjmp1
  2043.     dc.w    $0080,$0000,$0082,$0000
  2044. rot.copcol1
  2045.     ds.b    112*12
  2046. rot.cprbck1ntsc
  2047.     ds.b    56*12
  2048. rot.cprbck1
  2049.     ds.b    62*12
  2050. rot.cprend1ntsc
  2051.     ds.b    56*12
  2052. rot.cprend1
  2053.     dc.w    $0088,$0000
  2054. rot.e
  2055.  
  2056. ;eff_widbyt    equ    4        ;wide in bytes
  2057. ;eff_hgt    equ    6        ;hoogte
  2058. ;eff_plnnum    equ    8        ;number planes
  2059. ;eff_ani    equ    10        ;aantal effes (anim)
  2060. ;eff_cycstr    equ    12        ;cycle start (*4)
  2061. ;eff_cycend    equ    13        ;cycle end (*4)
  2062. ;eff_cycspd    equ    14        ;cycle speed (*4)
  2063. ;eff_cycadd    equ    15        ;cycle add (*4)
  2064. ;eff_pal    equ    28        ;palette start
  2065.  
  2066. ;**********************************************************************
  2067.  
  2068. ;and here are the incbin-files....
  2069.  
  2070.     ifd    rottest
  2071.     cnop    0,2
  2072. rot.pic
  2073.     dc.l    'PICT'
  2074.     dc.w    40,vew_hgt,2,1,0
  2075.     ds.b    16
  2076.     dc.w    4-1
  2077.     dc.w    $000,$00f
  2078.     dc.w    $0f0,$f00
  2079.     ds.w    256-2
  2080.     dcb.b    2*40*vew_hgt,240
  2081.     endc
  2082.         
  2083.